/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package asteroid;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 *
 * @author Mabrax
 */
public class Mundo {
    private List<Bala> balas;
    private Nave nave;
    private List<Asteroide> asteroides;
    private PlatilloVolador platillo;
    
    private final float WORLD_WIDTH = 700;
    private final float WORLD_HEIGHT = 700;
    
    private long gameTime = System.currentTimeMillis();
    private long elapsedGameTime = 0l;
    
    
    public void loadGameContent()
    {
        balas = new ArrayList<Bala>();
        asteroides = new ArrayList<Asteroide>();
        nave = new Nave();
        platillo = new PlatilloVolador();        
    }
    
    public void init()
    {
        // Se inicializa posición platillo
        platillo.posicionX = WORLD_WIDTH / 2;
        platillo.posicionY = WORLD_HEIGHT / 2;
        Random r = new Random();
        r.nextFloat();
    }
    
    public void update()
    {
        // Si hay más de 10 asteroides no se agrega ninguno más.
        if (asteroides.size() < 10){
            Asteroide asteroide = new Asteroide();
            Random r = new Random(System.nanoTime());
            int c = r.nextInt(4);
            switch(c){
                case 0:
                    asteroide.posicionX = 150 + r.nextInt(550);
                    asteroide.posicionY = -200;                                        
                    break;
                case 1:
                    asteroide.posicionX = 900;
                    asteroide.posicionY = 150 + r.nextInt(550);                    
                    break;
                case 2: 
                    asteroide.posicionX = 150 + r.nextInt(550);
                    asteroide.posicionY = 900;                
                    break;                    
                case 3: 
                    asteroide.posicionX = -200;
                    asteroide.posicionY =  150 + r.nextInt(550);                                                           
                    break;
            }
            // determinación velocidades
            c = r.nextInt(2);
            int angle;
            if(c == 0)
               angle = r.nextInt(16) * -1;
            else 
               angle = r.nextInt(16); 
            // tipo
            c = r.nextInt(3);
            switch(c){
                case 0:
                    asteroide.tipo = "grande";
                    asteroide.magnitud = 30;
                    break;
                case 1:
                    asteroide.tipo = "mediano";
                    asteroide.magnitud = 60;
                    break;
                case 2:
                    asteroide.tipo = "pequeño";
                    asteroide.magnitud = 100;
                    break;                    
            }
            
            asteroide.velocidadX = angle * (float)Math.cos(asteroide.magnitud);
            asteroide.velocidadY = angle * (float)Math.sin(asteroide.magnitud);
            
            asteroides.add(asteroide);
        }           
        
    }
    
    public void draw()
    {
    
    }
}
